package com.xbongbong.admin.domain.entity;

import com.xbongbong.paas.toolbox.wrap.Entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 镜像表单配置
 * @author xingxing.xiao
 * @date 2020/01/09 16:02
 */
@Getter
@Setter
@ToString
public class MirrorFormEntity extends Entity {

    private static final long serialVersionUID = -5999644014686346512L;
    /**
     * 主键
     */
    private Long id;
    /**
     * 镜像id
     */
    private Long mirrorId;
    /**
     * 镜像应用id
     */
    private Long mirrorAppId;
    /**
     * 镜像菜单id
     */
    private Long mirrorMenuId;
    /**
     * 来源应用id
     */
    private Long sourceAppId;
    /**
     * 来源菜单id
     */
    private Long sourceMenuId;
    /**
     * 来源表单id
     */
    private Long sourceFormId;
    /**
     * 表单名称
     */
    private String name;
    /**
     * saas标记
     */
    private Integer saasMark;
    /**
     * 业务类型
     */
    private Integer businessType;
    /**
     * 启用
     */
    private Integer enable;
    /**
     * 是否流程表单，1是，0否
     */
    private Integer isProcessForm;
    /**
     * 表单验证规则
     */
    private String verifyRule;
    /**
     * 不可见字段赋值，1 保持原值，2 空值，3 始终重新计算
     */
    private Integer disableFieldAssign;
    /**
     * 前端缓存，1 启用，0 禁用
     */
    private Integer frontCache;
    /**
     * 数据标题类型，1第一个字段，2自定义标题
     */
    private Integer titleType;
    /**
     * 自定义标题，具体指定格式
     */
    private String customTitle;

    /**
     * 关联列表设置
     */
    private String associationList;
    /**
     *  业务规则
     */
    private String businessRules;
    /**
     * 费用
     */
    private String surcharge;
    /**
     * 是否开启业绩分配
     */
    private Integer openDistribution;
    /**
     * 销售价格关联，用于出库单；1：开启；0：不开启
     */
    private Integer priceAssociation;
    /**
     * 自定义摘要，具体指定格式, 用于手机端列表页显示
     */
    private String summary;
    /**
     * 标签列表，最多5个字段
     */
    private String labels;
    /**
     * 协同人权限设置
     */
    private String coOpPerms;
    /**
     * 使用权限设置
     */
    private String permission;
    /**
     * 创建者id
     */
    private String creatorId;
    /**
     * 创建时间时间戳
     */
    private Long addTime;
    /**
     * 更新时间时间戳
     */
    private Long updateTime;
    /**
     * 删除标记
     */
    private Integer del;
    /**
     * 镜像工单模板id-工单镜像用
     */
    private Long mirrorTemplateId;
    /**
     * 工单模板id - 复制工单镜像时使用(admin)
     */
    private Long templateId;

    /**
     * 表单的单位列宽
     */
    private String fieldPosition;

    private Integer distributorMark;

    private Integer hidden;

    public MirrorFormEntity() {

    }

    public MirrorFormEntity(Long mirrorId, Long mirrorAppId, Long mirrorMenuId, Long sourceAppId, Long sourceMenuId, Long sourceFormId, String name, Integer saasMark, Integer businessType, Integer enable, Integer isProcessForm, String verifyRule, Integer disableFieldAssign, Integer frontCache, Integer titleType, String customTitle, String associationList, String businessRules, String surcharge, Integer openDistribution, Integer priceAssociation, String summary, String labels, String coOpPerms, String permission, String creatorId, Long addTime, Long updateTime, Integer del, String fieldPosition, Integer distributorMark, Integer hidden) {
        this.mirrorId = mirrorId;
        this.mirrorAppId = mirrorAppId;
        this.mirrorMenuId = mirrorMenuId;
        this.sourceAppId = sourceAppId;
        this.sourceMenuId = sourceMenuId;
        this.sourceFormId = sourceFormId;
        this.name = name;
        this.saasMark = saasMark;
        this.businessType = businessType;
        this.enable = enable;
        this.isProcessForm = isProcessForm;
        this.verifyRule = verifyRule;
        this.disableFieldAssign = disableFieldAssign;
        this.frontCache = frontCache;
        this.titleType = titleType;
        this.customTitle = customTitle;
        this.associationList = associationList;
        this.businessRules = businessRules;
        this.surcharge = surcharge;
        this.openDistribution = openDistribution;
        this.priceAssociation = priceAssociation;
        this.summary = summary;
        this.labels = labels;
        this.coOpPerms = coOpPerms;
        this.permission = permission;
        this.creatorId = creatorId;
        this.addTime = addTime;
        this.updateTime = updateTime;
        this.del = del;
        this.fieldPosition = fieldPosition;
        this.distributorMark = distributorMark;
        this.hidden = hidden;
    }
}
